通常架構圖如下,會有一個 Load Balance 負責接收 Client 端的請求,並指派到各個伺服器;伺服器會依照不同的工作內容切分不同群組,群組之間的溝通會用常見的 Message Queue 來溝通,最後為了避免每次都會需要進到 Database 查找資料,會將資料寫入記憶體緩存系統,加快下次的查詢。
AWS 可以設定 漸進式擴張 的方式,動態的調整要開多少台伺服器。
最常見的三種服務: ELB, Auto Scaling, EC2
另外可能會搭配 CloudFront 作為原本的 CDN、DynamoDB 作為資料庫、ElastiCache 這類的分散式記憶體緩存系統。
關於高併發的架構,有很多討論 C10K 或是 C1000K 的問題。
C10K 就是單機同時處理 1 萬個請求。現在慢慢的是要達成 C10M 個請求的併發。
這個實際達成達成的方法水有點深,若在不討論雲端架構下的前提下,若在本地端達成是需要考慮到許多問題的。
這也是雲端的優點,你不太需要考慮到本地伺服器的問題,只需要專注在自身的軟體開發流程。